output:
  sort-results: true

run:
  timeout: 10m
  build-tags:
  - docs

issues:
  exclude-use-default: false
  max-same-issues: 0
  max-issues-per-linter: 0
  exclude-rules:
    # Ignore check: Packages must have a package comment
    - text: "ST1000: at least one file in a package should have a package comment"
      linters:
        - stylecheck
    # Ignore rule about ID vs Id: https://github.com/golang/lint/issues/89
    - text: "ST1003:"
      linters:
        - stylecheck

linters:
  disable-all: true
  enable:
  - gofumpt
  - stylecheck
  - staticcheck
  - errorlint

linters-settings:
  gofumpt:
    lang-version: "1.21"
  staticcheck:
    go: "1.21"
    checks: ["all"]
  stylecheck:
    go: "1.21"
    checks: ["all"]
  errorlint:
    # https://github.com/polyfloyd/go-errorlint
    # Check whether fmt.Errorf uses the %w verb for formatting errors.
    errorf: true
    # Check for plain type assertions and type switches (errors.As must be used).
    asserts: true
    # Check for plain error comparisons (errors.Is must be used)
    comparison: true
